package pro.cherish.smartfile.util;

import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;

/**
 * @author 创建人：lys
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2020-12-10 lys 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：ByteBufferUtil
 * @Description 功能说明：
 * <p>
 *
 * </p>
 * **********************************************************************
 * @date 创建日期： 2020-12-10 lys
 */
public class ByteBufferUtil {

    /**
     * byteBuffer 转 str
     *
     * @param byteBuffer
     * @return
     */
    public static String decodeByteBuffer2Str(ByteBuffer byteBuffer) {
        Charset charset = Charset.forName("utf-8");
        return charset.decode(byteBuffer).toString();
    }


    /**
     * byteBuffer 转 byte
     *
     * @param byteBuffer
     * @return
     */
    public static byte[] decodeByteBuffer2Byte(ByteBuffer byteBuffer) {
        int len = byteBuffer.limit() - byteBuffer.position();
        byte[] bytes = new byte[len];
        byteBuffer.get(bytes);
        return bytes;
    }


    /**
     * str 转 byteBuffer
     *
     * @param str
     * @return
     */
    public static ByteBuffer encodeStr2ByteBuffer(String str) {
        try {
            return ByteBuffer.wrap(str.getBytes("utf-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return ByteBuffer.wrap(str.getBytes());
    }

    /**
     * bytes 转 byteBuffer
     *
     * @param bytes
     * @return
     */
    public static ByteBuffer encodeByte2ByteBuffer(byte[] bytes) {
        ByteBuffer byteBuffer = ByteBuffer.allocate(bytes.length);
        byteBuffer.clear();
        byteBuffer.get(bytes, 0, bytes.length);
        return byteBuffer;
    }
}
